package com.ruoyi.college.mapper;

import java.util.List;
import com.ruoyi.college.domain.SecondLevelSubject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 二级学科管理Mapper接口
 * 
 * @author ruoyi
 * @date 2025-07-31
 */
@Mapper
public interface SecondLevelSubjectMapper 
{
    /**
     * 查询二级学科管理
     * 
     * @param id 二级学科管理主键
     * @return 二级学科管理
     */
    public SecondLevelSubject selectSecondLevelSubjectById(String id);

    /**
     * 查询二级学科管理列表
     * 
     * @param secondLevelSubject 二级学科管理
     * @return 二级学科管理集合
     */
    public List<SecondLevelSubject> selectSecondLevelSubjectList(SecondLevelSubject secondLevelSubject);

    /**
     * 新增二级学科管理
     * 
     * @param secondLevelSubject 二级学科管理
     * @return 结果
     */
    public int insertSecondLevelSubject(SecondLevelSubject secondLevelSubject);

    /**
     * 修改二级学科管理
     * 
     * @param secondLevelSubject 二级学科管理
     * @return 结果
     */
    public int updateSecondLevelSubject(SecondLevelSubject secondLevelSubject);

    /**
     * 删除二级学科管理
     * 
     * @param id 二级学科管理主键
     * @return 结果
     */
    public int deleteSecondLevelSubjectById(String id);

    /**
     * 批量删除二级学科管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSecondLevelSubjectByIds(String[] ids);

    /**
     * 根据二级学科代码查询二级学科记录
     * @param secondSubjectCode 二级学科代码（如 "085404"）
     * @return 匹配的二级学科列表
     */
    List<SecondLevelSubject> selectBySecondSubjectCode(String secondSubjectCode);

    /**
     * 根据二级学科代码查询二级学科记录
     * @param secondSubjectCode 二级学科代码（如 "085404"）
     * @return 匹配的二级学科列表
     */
    SecondLevelSubject selectSecondLevelSubjectBySecondSubjectCode(String secondSubjectCode);

    /**
     * 根据学院代码和一级学科代码获取一级学科名称
     * @param collegeCode 学院代码（对应XML中的 #{collegeCode}）
     * @param secondsubjectcode 一级学科代码（对应XML中的 #{subjectCode}）
     * @return 一级学科名称（如“计算机科学与技术”）
     */
    String selectFecondLevelSubjectByCollegeCodeAndSubjectCode(
            @Param("collegeCode") String collegeCode,  // @Param注解必须加，明确参数名
            @Param("secondsubjectcode") String secondsubjectcode
    );

    String selectSecondLevelSubjectNameByFSAndSS(@Param("firstSubjectCode") String firstSubjectCode, @Param("secondSubjectCode") String secondSubjectCode);
}
